/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.lib.ddl; import java.sql.*; import java.util.Set; import org.netbeans.lib.ddl.*; /** * The factory interface used for creating instances of DatabaseSpecification class. * DatabaseSpecificationFactory collects information about available database * description files. Then it's able to specify if system can control * the database (specified by product name or live connection). It also * provides a list of supported databases. * * @author Slavek Psenicka */ public interface DatabaseSpecificationFactory { /** Returns array of database products supported by system. It returns * string array only, not the DatabaseSpecification array. */ public Set supportedDatabases(); /** Returns true if database (specified by databaseProductName) is * supported by system. Does not throw exception if it doesn't. * @param databaseProductName Database product name as given from DatabaseMetaData * @return True if database product is supported. */ public boolean isDatabaseSupported(String databaseProductName); /** Creates instance of DatabaseSpecification class; a database-specification * class. This object knows about used database and can be used as * factory for db-manipulating commands. It connects to the database * and reads database metadata. Throws DBException if database * (obtained from database metadata) is not supported. * @param connection Database connection used to obtain database product name * directly from the database. * @return Specification object. */ public DatabaseSpecification createSpecification(DBConnection connection, Connection c) throws DatabaseProductNotFoundException, DDLException; /** Creates instance of DatabaseSpecification class; a database-specification * class. This object knows about used database and can be used as * factory for db-manipulating commands. It connects to database and * reads metadata as createSpecification(DBConnection connection), but always * uses specified databaseProductName. This is not recommended technique. * @param connection Database connection (is NOT used to obtain database product name) * @return Specification object. */ public DatabaseSpecification createSpecification(DBConnection connection, String databaseProductName, Connection c) throws DatabaseProductNotFoundException; public DatabaseSpecification createSpecification(Connection c) throws DatabaseProductNotFoundException, SQLException; /** Returns debug-mode flag */ public boolean isDebugMode(); /** Sets debug-mode flag */ public void setDebugMode(boolean mode); } /* * <<Log>> */